#ifndef __EXCEPTION_H__
#define __EXCEPTION_H__

#include <stdexcept>
using namespace std;

#define _throw(exceptionType, message) throw exceptionType(message, __FILE__, __LINE__)

namespace gofgame {
	namespace common {
		class Exception {
		public:
			Exception(const char *message, const char *fileName, int lineNumber);
			virtual ~Exception();
			const char *getMessage() const;
			const char *getFileName() const;
			int getLineNumber() const;

		private:
			string message;
			string fileName;
			int lineNumber;
		};
	}
}

#endif //__EXCEPTION_H__
